Análise dos criptoativos desde 29/04/2013 até 27/02/2021

Se você acompanha o mercado financeiro, já deve ter lido ou escutado sobre a ascensão da criptomoeda. O bitcoin, por exemplo, superou os R$152.700 diante da valorização do dólar em 2020. A informação é da empresa Economatica.

Mas você sabe como é possível tirar proveito desse recurso monetário? Antes de mais nada, é preciso entender o que é criptomoeda. Ela é um moeda digital que promete ganhos superiores ao do Mercado Bovespa e sem regulação do Estado.

A criptomoeda, no entanto, vai muito além uma dinheiro virtual. Da mesma forma que a moeda física tem números de série, marca d’água e outros dispositivos de segurança, a criptomoeda utiliza criptografia.

A criptomoeda é um código virtual que pode ser convertido em valores reais. Geralmente, é necessário comprar do emissor ou de alguém que já tenha a moeda.

Sua negociação se dá pela internet, sem burocracias e intermediários, caracterizada pela ausência de um sistema monetário regulamentado e da submissão a uma autoridade financeira — por exemplo, o Banco Central do Brasil.

Visão geral do dataset

colnames(df) <- c("Ativo","Data","Maxima dia","Minima dia","Valor abertura","Valor fechamento","Volume","Valor de mercado")
df$Data <- df$Data %>% as.Date()
df %>% head(4) %>% knitr::kable()
Ativo Data Maxima dia Minima dia Valor abertura Valor fechamento Volume Valor de mercado
AAVE 2020-10-05 55.11236 49.78790 52.67504 53.21924 0.0 89128129
AAVE 2020-10-06 53.40227 40.73458 53.29197 42.40160 583091.5 71011441
AAVE 2020-10-07 42.40831 35.97069 42.39995 40.08398 682834.2 67130037
AAVE 2020-10-08 44.90251 36.69606 39.88526 43.76446 1658816.9 220265142

Verificando dados nulos

df %>% is.na() %>% colSums() %>% knitr::kable()
x
Ativo 0
Data 0
Maxima dia 0
Minima dia 0
Valor abertura 0
Valor fechamento 0
Volume 0
Valor de mercado 0

Verificando as 10 moedas com o maior valor de mercado dos ultimos 5 meses

df %>% filter( df$Data >= df$Data %>%  max() - (dweeks(4)*5) )  %>% arrange(desc(`Valor de mercado`)) %>% group_by(Ativo) %>% summarise(`Valor de mercado`=mean(`Valor de mercado`)) %>% arrange(desc(`Valor de mercado`)) %>% head(10) %>% knitr::kable()
Ativo Valor de mercado
BTC 498703193818
ETH 101920233712
USDT 22021090857
XRP 17217373333
DOT 10052662449
ADA 9582611431
BNB 8530794247
LTC 7468238020
LINK 6737321067
XLM 4693404297

Verificando diferença da máxima histórica para a mínima histórica de cada moeda ordenadas pela porcentagem de aumento

df %>% group_by(Ativo) %>% summarise("Minima historica"=min(`Minima dia`), "Maxima historica"=max(`Maxima dia`), "Aumento"=str_c(round(((max(`Maxima dia`) - min(`Minima dia`)) / min(`Minima dia`))*100, 1),"%")) %>% arrange(desc(Aumento)) %>% head(10) %>% knitr::kable()
Ativo Minima historica Maxima historica Aumento
DOGE 0.0000855 0.0849451 99280.7%
BTC 65.5260010 58330.5721419 88919%
ADA 0.0176200 1.4766529 8280.6%
XLM 0.0012271 0.9381440 76352.1%
MIOTA 0.0796197 5.6900201 7046.5%
ETH 0.4208970 2036.2864933 483696.9%
EOS 0.4801960 22.8903999 4666.9%
BNB 0.0961094 342.8795928 356659.7%
SOL 0.5051936 18.1466217 3492%
LTC 1.1137400 375.2860107 33596%

Notamos que todas as moedas tiveram um aumento considerável no decorrer do tempo


Verificando o valor de abertura e fechamento no dia da máxima histórica

lista <- list()
for(i in ativos <- df$Ativo %>% unique()){
  
  lista <- append(lista, list(df %>% filter(Ativo==i) %>% filter(`Maxima dia`==`Maxima dia` %>% max) %>% select(Ativo, `Valor abertura`, `Valor fechamento`, `Maxima dia`, Data)))
}

AberturaFechamento <- lista[[1]]
for(i in 2:23){
    AberturaFechamento[nrow(AberturaFechamento)+1,] <- slice(lista[[i]],1)
}


AberturaFechamento %>% arrange(desc(Data)) %>% knitr::kable()
Ativo Valor abertura Valor fechamento Maxima dia Data
ADA 1.2421453 1.3248603 1.4766529 2021-02-27
SOL 15.2138421 17.3027071 18.1466217 2021-02-24
CRO 0.1406185 0.2202608 0.2709597 2021-02-22
BTC 56068.5682455 57539.9436679 58330.5721419 2021-02-21
WBTC 55885.9099880 57557.9728298 58175.0136131 2021-02-21
LINK 34.7112802 34.1098167 36.8284600 2021-02-20
ETH 1959.9029771 1919.5340028 2036.2864933 2021-02-20
DOT 34.7971135 39.2421773 42.0630504 2021-02-20
UNI 20.0726441 29.1403850 32.6326829 2021-02-20
BNB 195.9878561 332.6160326 342.8795928 2021-02-19
ATOM 22.4332548 25.1867110 26.4193846 2021-02-16
AAVE 487.6995549 517.9682568 559.1229443 2021-02-10
DOGE 0.0783524 0.0788251 0.0849451 2021-02-08
USDC 1.0169000 1.0268000 1.1137300 2018-10-15
EOS 18.8773994 21.5426006 22.8903999 2018-04-29
XMR 456.1510010 459.3309937 495.8359985 2018-01-07
TRX 0.2095790 0.2205550 0.3003630 2018-01-05
XEM 1.8355800 1.6448100 2.0918801 2018-01-04
XLM 0.8923990 0.7240500 0.9381440 2018-01-04
XRP 3.1173401 3.1966300 3.8419399 2018-01-04
MIOTA 4.2439899 5.3663301 5.6900201 2017-12-19
LTC 359.1250000 350.2529907 375.2860107 2017-12-19
USDT 1.2104200 1.2057400 1.2123200 2015-02-26

Podemos ver que nenhum ativo se manteve com o valor da máxima em seu fechamento


Verificando o valor de abertura e fechamento no dia da mínima histórica

lista2 <- list()
for(i in ativos <- df$Ativo %>% unique()){
  
  lista2 <- append(lista2, list(df %>% filter(Ativo==i) %>% filter(`Minima dia`==`Minima dia` %>% max) %>% select(Ativo, `Valor abertura`, `Valor fechamento`, `Minima dia`, Data)))
}

AberturaFechamentoMin <- lista2[[1]]
for(i in 2:23){
    AberturaFechamentoMin[nrow(AberturaFechamentoMin)+1,] <- slice(lista2[[i]],1)
}


AberturaFechamentoMin %>% filter(`Minima dia` < `Valor fechamento`) %>% arrange(desc(Data)) %>% knitr::kable()
Ativo Valor abertura Valor fechamento Minima dia Data
ADA 1.2421453 1.3248603 1.2341376 2021-02-27
SOL 15.2138421 17.3027071 14.8617995 2021-02-24
BNB 254.5392796 293.9235915 250.5408103 2021-02-21
BTC 56068.5682455 57539.9436679 55672.6095133 2021-02-21
LINK 34.0732073 34.1527420 33.4279887 2021-02-21
DOT 39.1712011 39.6962287 38.1545457 2021-02-21
UNI 28.9105509 28.8297155 28.0216454 2021-02-21
WBTC 55885.9099880 57557.9728298 55687.7828848 2021-02-21
ETH 1938.8598809 1960.1647435 1896.6845077 2021-02-19
ATOM 23.8658638 23.1378225 22.8366576 2021-02-18
AAVE 516.3264023 518.0725401 504.7816601 2021-02-11
DOGE 0.0701105 0.0728963 0.0685254 2021-02-10
CRO 0.1784397 0.1798386 0.1770833 2020-09-01
USDC 1.0282100 1.0264339 1.0230579 2020-02-03
EOS 18.8773994 21.5426006 18.8773994 2018-04-29
XMR 456.1510010 459.3309937 453.3909912 2018-01-07
XEM 1.6554199 1.8427200 1.6260200 2018-01-07
TRX 0.2095790 0.2205550 0.1767120 2018-01-05
XLM 0.8923990 0.7240500 0.6774960 2018-01-04
XRP 3.1173401 3.1966300 3.1173401 2018-01-04
MIOTA 5.0803199 5.0298800 4.8613601 2017-12-21
LTC 359.1250000 350.2529907 335.6749878 2017-12-19
USDT 1.2104200 1.2057400 1.1947100 2015-02-26

Visualizando o quanto o valor de mercado influencia no preço dos ativos

dfFiltrado <- df%>%filter(`Valor de mercado` > 0 & `Valor fechamento` > 0)

plot_ly(data=dfFiltrado, x=~`Valor fechamento`, y=~`Valor de mercado`, type = "scatter", marker=list(color="brown"))

Como podemos ver, o valor de mercado(Marketcap) tem total influência no preço das criptos


Visualizando o quanto que o valor de mercado subiu no decorrer do tempo das 5 moedas com maior media de valor de mercado

marketcapAtivos <- df %>% group_by(Ativo) %>% summarise(media=mean(`Valor de mercado`)) %>% arrange(desc(media)) %>% head(5) %>% select(Ativo)

dfMkt <- df %>% filter(Ativo==marketcapAtivos$Ativo) 

plot_ly(data=dfMkt, x=~Data, y=~`Valor de mercado`, color = ~Ativo, colors = "Set1", mode = "lines")

Como podemos ver, a dominância do bitcoin é absurda


Visualizando quem tem o maior valor de mercado atualmente

dfMktAgrupado <- dfMkt %>% group_by(Ativo) %>% summarise("Valor de mercado"=sum(`Valor de mercado`))


plot_ly(data=dfMktAgrupado, x=~Ativo, y=~`Valor de mercado`, color = ~Ativo, type = "bar", colors = "Dark2") %>% layout(title="27/02/21")

Focando o Bitcoin

Criada uma variável que calcula a oscilação diaria do bitcoin desde 2013 até 2021 para posteriores análises

df2 <- df %>% filter(Ativo=="BTC") %>% select(Ativo, Data, `Valor abertura`, `Valor fechamento`)
df2$"Oscilacao em %" <- round(((df2$`Valor fechamento` - df2$`Valor abertura`)/ df2$`Valor abertura`)*100,1)

PN <- function(vetor){
  if(vetor >= 0){
    return("Positivo")
  }else if(vetor < 0){
    return("Negativo")
  }
}

df2$Positivo_Negativo <- unlist(sapply(df2$`Oscilacao em %`, PN)) 


df2[,-6] %>% head(5) %>% knitr::kable()
Ativo Data Valor abertura Valor fechamento Oscilacao em %
BTC 2013-04-29 134.444 144.54 7.5
BTC 2013-04-30 144.000 139.00 -3.5
BTC 2013-05-01 139.000 116.99 -15.8
BTC 2013-05-02 116.380 105.21 -9.6
BTC 2013-05-03 106.250 97.75 -8.0

Visualizando as oscilações do bitcoin

plot_ly(data=df2, x=~Data, y=~`Oscilacao em %`, color=~Positivo_Negativo, mode="lines", colors = "Set1")

Bitcoin tem mostrado ser uma moeda pouco volátil se comparado as outras, com oscilações diárias estáveis com poucas exceções como no inicio de 2020 que chegou a desvalorizar quase 40%